<%@ page language="java" contentType="text/html; charset=UTF-8" isELIgnored="false"
         pageEncoding="UTF-8" isErrorPage="true" %>

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>系统错误</title>
</head>
<body>
<div class="error-container">
    <h1>⚠️ 抱歉，系统出错了！</h1>

    <!-- 显示用户友好提示 -->
    <p>请根据错误信息，进行相应的措施！谢谢！</p>

    <!-- 显示后端传递的错误信息 -->
    <div class="error-details">
        <%-- 检查是否有错误码 --%>
        <% if (request.getAttribute("errorCode") != null) { %>
        <p><strong>错误代码：</strong> ${errorCode}</p>
        <% } %>

        <%-- 检查是否有错误消息 --%>
        <p><strong>错误描述：</strong>
            <% if (request.getAttribute("errorMsg") != null) { %>
            ${errorMsg}
            <% } else { %>
            系统内部错误
            <% } %>
        </p>

        <%-- 开发环境才显示堆栈（通过web.xml参数控制） --%>
        <%
            String showStackTrace = application.getInitParameter("showStackTrace");
            if ("true".equals(showStackTrace) && exception != null) {
        %>
        <p><strong>详细原因：</strong></p>
        <pre><% exception.printStackTrace(new java.io.PrintWriter(out)); %></pre>
        <% } %>
    </div>

    <a href="${not empty returnUrl ? returnUrl : pageContext.request.contextPath}"
       class="home-link">
        ${not empty returnUrl ? '返回上一页' : '返回首页'}
    </a>
</div>
</body>
<style>
    body {
        font-family: Arial, sans-serif;
        background-color: #f8f9fa;
        color: #343a40;
        text-align: center;
        padding: 50px;
    }
    .error-container {
        max-width: 600px;
        margin: 0 auto;
        background: #fff;
        padding: 30px;
        border-radius: 8px;
        box-shadow: 0 0 15px rgba(0,0,0,0.1);
    }
    h1 {
        color: #dc3545;
    }
    .error-details {
        background: #f8d7da;
        padding: 15px;
        border-radius: 5px;
        margin: 20px 0;
        text-align: left;
    }
    .home-link {
        display: inline-block;
        margin-top: 20px;
        padding: 10px 20px;
        background: #007bff;
        color: white;
        text-decoration: none;
        border-radius: 5px;
    }
</style>
</html>